In [1]:
from Poisson.autoencoder import AnalyticAutoEncoder
from IPython.display import Video

aae = AnalyticAutoEncoder(epochs=60, lr=0.001)
aae.train(verbose=0, seed=23)
training...
--------
Reconstructed Phi MSE
Training: 1.980242103627461e-08
Validation: 1.977179131529283e-08
Test: 1.986038533630108e-08
--------
Latent theta MSE: [1.37216112e-05 9.81344499e-08 9.38770015e-08]
In [2]:
Video('visuals/theta_epochs/learn_theta.mp4', 
     embed=True,
     width=600,
     html_attributes='loop autoplay')
Out[2]:
In [3]:
Video('visuals/solution_epochs/learn_solution.mp4', 
     embed=True,
     width=600,
     html_attributes='loop autoplay')
Out[3]:
In [4]:
aae.plot_solution_fit()
Latent theta MSE: [1.27374032e-05 9.04933276e-08 8.62781963e-08]
Reconstructed Phi MSE: 1.8429872047727738e-08
In [5]:
aae.plot_theta_fit(sigma=1.0)
theta MSE: [14.18731015  2.49847811  2.00593993]
transformed theta MSE: [0.00160159 0.03572495 0.02771865]
In [6]:
aae.plot_solution_fit(sigma=1.0)
Latent theta MSE: [7.22520357 1.08338405 3.91435764]
Reconstructed Phi MSE: 2.830711715391906

Bootstrappin

Train on clean, test on noisy

In [7]:
num_boots = 100
aae.bootstrap(num_boots, train_sigma=0, test_sigma=1.0)
Bootstrapping with 100 boot samples
done
In [8]:
aae.plot_theta_boot()
In [9]:
aae.plot_solution_boot()

Train on noisy, test on clean

In [10]:
aae2 = AnalyticAutoEncoder(epochs=25, lr=0.001)
aae2.bootstrap(num_boots, train_sigma=1.0, test_sigma=0)
Bootstrapping with 100 boot samples
done
In [11]:
# test on noisy data
aae2.plot_theta_boot()
In [12]:
# test on noisy data
aae2.plot_solution_boot()

Train and test on noisy

In [13]:
aae3 = AnalyticAutoEncoder(epochs=25, lr=0.001)
aae3.bootstrap(num_boots, train_sigma=1.0, test_sigma=1.0)
Bootstrapping with 100 boot samples
done
In [14]:
aae3.plot_theta_boot()
In [15]:
aae3.plot_solution_boot()

Compare models

In [16]:
aae.plot_solution_boot()
In [17]:
aae2.plot_solution_boot()
In [18]:
aae3.plot_solution_boot()
In [ ]: